O Arquitetura de Conjunto de Instruções (ISA) serve como um nível fundamental de abstração e um contrato formal entre software e hardware. Embora linguagens de alto nível como C ocultem a complexidade, o ISA expõe o estado arquitetônico—a configuração precisa dos registradores e da memória do processador.
1. O Estado Arquitetônico
Uma CPU x86-64 define seu estado por meio de vários componentes-chave:
- Contador de Programa (%rip): Armazena o endereço da próxima instrução.
- Arquivo de Registradores Inteiros: 16 registradores de uso geral (por exemplo,
%rax,%rbx) armazenando valores de 64 bits. - Códigos de Condição: Flags (ZF, SF, CF, OF) para fluxo de controle.
- Registradores Vetoriais: Como registradores YMM (256 bits) para operações SIMD.
2. Abstração de Memória
O código de máquina vê a memória como uma grande matriz endereçável por byte. Embora o x86-64 suporte endereços virtuais de 64 bits, as implementações atuais costumam usar um espaço de endereços de 48 bits ($2^{48}$ bytes). Classificamos os tamanhos de dados como Palavra (16 bits), Palavra dupla (32 bits) e Palavra quádrupla (64 bits).
3. Evolução e Compatibilidade
Impulsionado por A Lei de Moore, a Intel evoluiu do 8086 até Core i7 Haswell. O ISA garante compatibilidade com versões anteriores, permitindo que códigos de máquina legados sejam executados em hardware moderno com múltiplos núcleos e hiperthreading.